package com.mthree;

import java.util.ArrayList;
import java.util.List;

/**
 * 2. 编程题
 * <p>
 * 编程获取两个指定字符串中的最大相同子串。
 * <p>
 * 如： s1="asdafghjka", s2="aaasdfg" 他们的最大子串为"asd"
 * <p>
 * 提示： 将短的那个串进行长度依次递减的子串与较长的串比较。
 */
public class TwoTest {

    public static void main(String[] args) {
        //1。声明Sting对象
        String str = new String("asdafghjka");
        String str1 = new String("aaasdfg");
        //5。创建list集合用于记录相同子串
        List<String> list=new ArrayList<>();
        //2.使用str2长度段的字符串进行递减与较长的字符串进行比较
        for (int i=str1.length();i>=0;i--){
            for (int j=0;j<str1.length()-i;j++){
                //3。使用substring方法实现从j到j+i结束字符串
                String c=str1.substring(j,j+i);//j+i
                //4.判断str字符串中是否包含c字符串的内容
                if(str.contains(c)){
                    //System.out.println(c);
                    //6。向list中插入数据
                    list.add(c);
                }
            }
        }

//        for (String s:list) {
//            System.out.println(s);
//        }
        //7.打印
        System.out.println("最大相同子串为："+list.get(0));
    }

}
